package net.butfly.bus.context;

import java.util.HashMap;
import java.util.Map;

/**
 * 
 * 每次request的上下文
 * 
 * @author wangyong
 * 
 */
public class Context {

	private Map map = new HashMap();

	/**
	 * 构造空request上下文
	 */
	public Context() {

	}

	/**
	 * 
	 * 根据map构造request上下文
	 * 
	 * @param map
	 */
	public Context(Map map) {
		this.map.putAll(map);
	}

	/**
	 * 根据key获取request上下文属性
	 * 
	 * @param attr
	 * @return
	 */
	public Object getAttribute(String attr) {
		if (attr == null || "".equals(attr)) {
			throw new IllegalArgumentException("attr不能为null!");
		}
		return map.get(attr);
	}

	/**
	 * 设置request上下文属性
	 * 
	 * @param attr
	 * @param value
	 */
	public void setAttribute(String attr, Object value) {
		if (attr == null || "".equals(attr)) {
			throw new IllegalArgumentException("attr不能为null!");
		}
		if (value == null) {
			throw new IllegalArgumentException("value不能为null!");
		}
		map.put(attr, value);
	}

	public Map toMap() {
		return map;
	}

}
